/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package gcs.modelo;

/**
 *
 * @author Rafe
 */
public class Puntuacion implements Comparable {
    public int puntos=0;
    public int golpesAFavor=0;
    public int golpesEnContra=0;
    public int resistenciaOponentes=0;

    @Override
    public int hashCode() {
        int hash = 3;
        hash = 71 * hash + this.puntos;
        hash = 71 * hash + this.golpesAFavor;
        hash = 71 * hash + this.golpesEnContra;
        hash = 71 * hash + this.resistenciaOponentes;
        return hash;
    }

    @Override
    public boolean equals(Object obj) {
        if (obj == null) {
            return false;
        }
        if (getClass() != obj.getClass()) {
            return false;
        }
        final Puntuacion other = (Puntuacion) obj;
        if (this.puntos != other.puntos) {
            return false;
        }
        if (this.golpesAFavor != other.golpesAFavor) {
            return false;
        }
        if (this.golpesEnContra != other.golpesEnContra) {
            return false;
        }
        if (this.resistenciaOponentes != other.resistenciaOponentes) {
            return false;
        }
        return true;
    }

    @Override
    public String toString() {
        return puntos + "\t" + golpesAFavor + "\t" + golpesEnContra + "\t" + resistenciaOponentes;
    }

    @Override
    public int compareTo(Object o) {
        int resultado = 1;
            
            Puntuacion p2 = (Puntuacion) o;
            if (puntos > p2.puntos) {
                resultado = -1;
            } else if (puntos == p2.puntos) {
                if (golpesAFavor > p2.golpesAFavor) {
                    resultado = -1;
                } else if (golpesAFavor == p2.golpesAFavor) {
                    if (golpesEnContra < p2.golpesEnContra) {
                        resultado = -1;
                    } else if (golpesAFavor == p2.golpesAFavor) {
                        if (resistenciaOponentes > p2.resistenciaOponentes) {
                            resultado = -1;
                        } else if (resistenciaOponentes == p2.resistenciaOponentes) {
                            resultado = 0;
                        }
                    }
                }
            }
            return resultado;
    }
}
